package ec_si_template;

/**
 * All parameters are set in this file
 * @author Andreas Janecek
 *
 */
public class Config {
	
	// GENERAL PARAMETERS
	
	/**
	 *  Size of the swarm / population
	 */
	public final static int nPop = 20;

	/**
	 *  Dimension of the objective function
	 */
	public static final int dim = 2;

	/**
	 *  Maximum number of function evaluations
	 */
	public static final long max_evaluations = (long) 20000;
	
	
	// ALGORITHM SPECIFIC PARAMETERS
	
    /**
     * default value 5*/
    public static final double INITIAL_LUCIFERIN = 5.0;
    
    /**
     * default value 5*/
    public static final int NEIGHBOURHOOD_THRESHOLD = 5;
    
    /**
     * default value 0.03*/
    public static final double STEP_SIZE = 0.3;
    
    /**
     * default value 0.08*/
    public static final double NEIGHBOURHOOD_CHANGE_RATE = 0.08;
    
    public static final double MAX_VISION_RANGE = 50;
    
    /**
     * default value 0.4*/
    public static final double LUCIFERIN_DECAY = 1;
    
    /**
     * default value 0.6*/
    public static final double LUCIFERIN_ENHANCEMENT = 1;
	
	
	// OUTPUT AND PLOTTING AND WRITING TO FILE
	
	/**
	 *  Console output: 0: no output; 1: only fitness; 2: fitness and position
	 */
	public static final int ouputLevel = 2;

	/**
	 *  If set to true the position of individuals in each iteration are written to file "fileName" - see below
	 */
	public static final boolean printToFile = true;

	/**
	 *  If set to true the fitness history will be shown as a plot
	 */
	public static final boolean plotFitnessHistory = false;
	
}
